Frontend Forever App
We have a mobile app for you to download and use. And you can unlock many features in the app.
Get it now
Intall Later
Run
HTML
CSS
Javascript
Output
TITLE
TITLE
TITLE
TITLE
* { margin: 0; padding: 0; box-sizing: border-box; } body { background: #212121; min-height: 100dvh; width: 100%; display: flex; gap: 50px; flex-wrap: wrap; padding: 30px; justify-content: center; align-items: center; } .card { position: relative; height: 300px; width: 230px; &:nth-child(2) { filter: hue-rotate(300deg) brightness(1.3); } &:nth-child(3) { filter: hue-rotate(200deg) brightness(1.5); } &:nth-child(4) { filter: hue-rotate(60deg) brightness(3); } .boxshadow { position: absolute; height: 100%; width: 100%; border: 1px solid red; transform: scale(0.8); box-shadow: rgba(255, 0, 0, 1) 0px 30px 70px 0px; transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86); } .main { width: 230px; height: 300px; overflow: hidden; background: red; background: linear-gradient( 0deg, rgb(62, 0, 0) 0%, rgba(255, 0, 0, 1) 60%, rgb(62, 0, 0) 100% ); position: relative; clip-path: polygon( 0 0, 100% 0, 100% 40px, 100% calc(100% - 40px), calc(100% - 40px) 100%, 40px 100%, 0 calc(100% - 40px) ); box-shadow: rgba(255, 0, 0, 1) 0px 7px 29px 0px; transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86); .top { position: absolute; top: 0px; left: 0; width: 0px; height: 0px; z-index: 2; border-top: 115px solid black; border-left: 115px solid transparent; border-right: 115px solid transparent; transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86); } .side { position: absolute; width: 100%; top: 0; transform: translateX(-50%); height: 101%; background: black; clip-path: polygon(0% 0%, 50% 0, 95% 45%, 100% 100%, 0% 100%); transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86) 1s; } .left { left: 0; } .right { right: 0; transform: translateX(50%) scale(-1, 1); } .title { position: absolute; left: 50%; transform: translateX(-50%); top: 90px; font-weight: bold; font-size: 25px; opacity: 0; z-index: -1; transition: all 0.2s ease-out 0s; } .button-container { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); .button { position: absolute; transform: translateX(-50%); padding: 5px 10px; clip-path: polygon(0 0, 100% 0, 81% 100%, 21% 100%); background: black; border: none; color: white; display: grid; place-content: center; transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86); .svg { width: 15px; transition: all 0.2s cubic-bezier(0.785, 0.135, 0.15, 0.86); } &:nth-child(1) { bottom: 300px; transition-delay: 0.4s; } &:nth-child(2) { bottom: 300px; transition-delay: 0.6s; } &:nth-child(3) { bottom: 300px; transition-delay: 0.8s; } &:hover { .svg { transform: scale(1.2); } } &:active { .svg { transform: scale(0.7); } } } } } } .card { &:hover { .main { transform: scale(1.1); .top { top: -50px; } .left { left: -50px; transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.1s; } .right { right: -50px; transition: all 0.5s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.1s; } .title { opacity: 1; transition: all 0.2s ease-out 1.3s; } .button-container { .button { &:nth-child(1) { bottom: 80px; transition-delay: 0.8s; } &:nth-child(2) { bottom: 40px; transition-delay: 0.6s; } &:nth-child(3) { bottom: 0; transition-delay: 0.4s; } } } } } }